package com.tinyseed.emcp.api.exception.service;

import com.google.common.collect.Multimap;
import com.tinyseed.emcp.api.exception.bean.ExceptionInfoInputDTO;
import com.tinyseed.emcp.api.exception.bean.ExceptionInfoOutputDTO;
import com.tinyseed.emcp.api.exception.entity.DailyExceptionInfo;
import com.tinyseed.emcp.api.exception.entity.ExceptionInfo;
import com.tinyseed.emcp.api.maintenance.domain.MaintenanceInfo;
import org.springframework.data.domain.Page;

import java.util.List;

public interface ExceptionInfoService {

    List<ExceptionInfoOutputDTO> getList();

    Page getList(ExceptionInfoInputDTO inputDTO, int size, int current);

    /**
     * Description 进入下一个
     * Version 1.0
     * Date 2020/3/14 6:18 下午
     * Author howard
     *
     * @return
     */
    void createMTInfoByExceptionInfo(ExceptionInfo exceptionInfo, MaintenanceInfo maintenanceInfo);

    void saveExceptionInfo(ExceptionInfo exceptionInfo);

    void updateExceptionInfo(ExceptionInfo exceptionInfo);

    ExceptionInfo findByid(Long id);

    Long exceptionInfoDashboard();

    List<ExceptionInfo> exceptionInfoForEnterprise();

    Multimap<String, ExceptionInfo> getEnterpriseExceptionInfoMap();

    Multimap<String, ExceptionInfo> getOrganizeGroupByExceptionInfos();

    Multimap<String, ExceptionInfo> getOrganizeChildGroupByExceptionInfos();

    Multimap<Long, ExceptionInfo> getMonitorMapByExceptionInfo();

    DailyExceptionInfo getDailyException();

    void saveDailyExceptionInfo();

    DailyExceptionInfo getYesterdayExceptionInfo();
}
